var browserMatch = {
	init : function() {
		this.browser = this.getBrowser().browser || "未知浏览器"; // 获取浏览器名
		this.versionNo = this.getBrowser().version; // 获取浏览器版本
		if (!this.versionNo) {
			this.versionNo = "未知浏览器";
		}
		this.OS = this.getOS() + " " + this.getDigits() || "未知操作系统"; // 系统版本号
		this.clientOs = this.clientOs() || "未知操作平台"; // 系统版本号
	},
	getOS : function() { // 判断所处操作系统
		var sUserAgent = navigator.userAgent.toLowerCase();
		
		var isWin = (navigator.platform == "Win32") || (navigator.platform == "Win64") || (navigator.platform == "wow64");
		
		var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel");
		if (isMac)
			return "Mac";
		var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
		if (isUnix)
			return "Unix";
		var isLinux = (String(navigator.platform).indexOf("Linux") > -1);
		var bIsAndroid = sUserAgent.toLowerCase().match(/android/i) == "android";
		if (isLinux) {
			if (bIsAndroid)
				return "Android";
			else
				return "Linux";
		}
		if (isWin) {
			
			var isWin2K = sUserAgent.indexOf("Windows nt 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;
			if (isWin2K)
				return "Win2000";
			var isWinXP = sUserAgent.indexOf("Windows nt 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1
			sUserAgent.indexOf("Windows XP") > -1;
			if (isWinXP)
				return "WinXP";
			var isWin2003 = sUserAgent.indexOf("Windows nt 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1;
			if (isWin2003)
				return "Win2003";
			var isWinVista = sUserAgent.indexOf("Windows nt 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1;
			if (isWinVista)
				return "WinVista";
			var isWin7 = sUserAgent.indexOf("Windows nt 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1;
			if (isWin7)
				return "Win7";
			var isWin8 = sUserAgent.indexOf("windows nt 6.2") > -1 || sUserAgent.indexOf("Windows 8") > -1;
			if (isWin8)
				return "Win8";
			var isWin10 = sUserAgent.indexOf("windows nt 10.0") > -1 || sUserAgent.indexOf("Windows 10") > -1;
			if (isWin10)
				return "Win10";
		}
		return "其他";
	},
	getDigits : function() { // 判断当前操作系统的版本号
		var sUserAgent = navigator.userAgent.toLowerCase();
		var is64 = sUserAgent.indexOf("win64") > -1 || sUserAgent.indexOf("wow64") > -1;
		if (is64) {
			return "64位";
		} else {
			return "32位";
		}
	},
	getBrowser : function() { // 获取浏览器名
		var rMsie = /(msie\s|trident\/7)([\w\.]+)/;
		var rTrident = /(trident)\/([\w.]+)/;
		var rEdge = /(chrome)\/([\w.]+)/;// IE
		
		var rFirefox = /(firefox)\/([\w.]+)/; // 火狐
		var rOpera = /(opera).+version\/([\w.]+)/; // 旧Opera
		var rNewOpera = /(opr)\/(.+)/; // 新Opera 基于谷歌
		var rChrome = /(chrome)\/([\w.]+)/; // 谷歌
		var rUC = /(chrome)\/([\w.]+)/;// UC
		var rMaxthon = /(chrome)\/([\w.]+)/;// 遨游
		var r2345 = /(chrome)\/([\w.]+)/;// 2345
		var rQQ = /(chrome)\/([\w.]+)/;// QQ
		// var rMetasr = /(metasr)\/([\w.]+)/;//搜狗
		var rSafari = /version\/([\w.]+).*(safari)/;
		
		var ua = navigator.userAgent.toLowerCase();
		
		var matchBS, matchBS2;
		
		// IE 低版
		matchBS = rMsie.exec(ua);
		if (matchBS != null) {
			matchBS2 = rTrident.exec(ua);
			if (matchBS2 != null) {
				switch (matchBS2[2]) {
				case "4.0":
					return {
						browser : "Microsoft IE",
						version : "IE8" // 内核版本号
					};
					break;
				case "5.0":
					return {
						browser : "Microsoft IE",
						version : "IE9"
					};
					break;
				case "6.0":
					return {
						browser : "Microsoft IE",
						version : "IE10"
					};
					break;
				case "7.0":
					return {
						browser : "Microsoft IE",
						version : "IE11"
					};
					break;
				default:
					return {
						browser : "Microsoft IE",
						version : "Undefined"
					};
				}
			} else {
				return {
					browser : "Microsoft IE",
					version : "IE" + matchBS[2] || "0"
				};
			}
		}
		// IE最新版
		matchBS = rEdge.exec(ua);
		if ((matchBS != null) && (!(window.attachEvent))) {
			return {
				browser : "Microsoft Edge",
				version : "Chrome"
			};
		}
		// UC浏览器
		matchBS = rUC.exec(ua);
		if ((matchBS != null) && (!(window.attachEvent))) {
			return {
				browser : "UC",
				version : "Chrome"
			};
		}
		// 火狐浏览器
		matchBS = rFirefox.exec(ua);
		if ((matchBS != null) && (!(window.attachEvent))) {
			return {
				browser : "火狐",
				version : "Firefox"
			};
		}
		// Oper浏览器
		matchBS = rOpera.exec(ua);
		if ((matchBS != null) && (!(window.attachEvent))) {
			return {
				browser : "Opera",
				version : "Chrome"
			};
		}
		// 遨游
		matchBS = rMaxthon.exec(ua);
		if ((matchBS != null) && (!(window.attachEvent))) {
			return {
				browser : "遨游",
				version : "Chrome"
			};
		}
		// 2345浏览器
		matchBS = r2345.exec(ua);
		if ((matchBS != null) && (!(window.attachEvent))) {
			return {
				browser : "2345",
				version : "Chrome"
			};
		}
		// QQ浏览器
		matchBS = rQQ.exec(ua);
		if ((matchBS != null) && (!(window.attachEvent))) {
			return {
				browser : "QQ",
				version : "Chrome"
			};
		}
		// Safari（苹果）浏览器
		matchBS = rSafari.exec(ua);
		if ((matchBS != null) && (!(window.attachEvent)) && (!(window.chrome)) && (!(window.opera))) {
			return {
				browser : "Safari",
				version : "Safari"
			};
		}
		// 谷歌浏览器
		matchBS = rChrome.exec(ua);
		if ((matchBS != null) && (!(window.attachEvent))) {
			matchBS2 = rNewOpera.exec(ua);
			if (matchBS2 == null) {
				return {
					browser : "谷歌",
					version : "Chrome"
				};
			} else {
				return {
					browser : "Opera",
					version : "opr"
				};
			}
		}
	},
	clientOs : function() {
		
		var sUserAgent = navigator.userAgent;
		var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
		var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel");
		if (isMac) {
			return "Mac";
		}
		var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
		if (isUnix) {
			return "Unix";
		}
		var isLinux = (String(navigator.platform).indexOf("Linux") > -1);
		if (isLinux) {
			return "Linux";
		}
		if (isWin) {
			
			var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;
			if (isWin2K)
				return "Win2000";
			var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1;
			if (isWinXP)
				return "WinXP";
			var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1;
			if (isWin2003)
				return "Win2003";
			var isWinVista = sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1;
			if (isWinVista)
				return "WinVista";
			var isWin7 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1 || (/msie 7.0/.test(sUserAgent));
			if (isWin7)
				return "Win7";
			var isWin8 = sUserAgent.indexOf("Windows NT 6.2") > -1 || sUserAgent.indexOf("Windows 8") > -1 || (/Windows NT 6.2/.test(sUserAgent)) || (/Windows NT 6.3/.test(sUserAgent));
			if (isWin8)
				return "Win8";
			var isWin10 = sUserAgent.indexOf("Windows NT 10.0") > -1 || sUserAgent.indexOf("Windows 10") > -1 || (/msie 10.0/.test(sUserAgent));
			if (isWin10)
				return "Win10";
		}
		return "other";
	}
};
browserMatch.init();
